home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / wgdb-42.lha / wgdb-4.2 / gdb / vx-share / xdr_rdb.h < prev    next >
C/C++ Source or Header  |  1992-09-11  |  3KB  |  133 lines

  1. /* xdr_rdb.h - xdr for additional rdb structures */
  2.  
  3. /*
  4. modification history
  5. --------------------
  6. 01a,23may90,llk  created using xdr_dbx.h.
  7.          added arg_array to replace arg_info.  arg_info had
  8.            MAXNCMDARGS (= 100) as the max limit of char strings,
  9.            but it should be MAX_TASK_ARGS (= 10).
  10. */
  11.  
  12. #ifndef INCxdrrdbh
  13. #define INCxdrrdbh
  14.  
  15. enum arg_type {
  16.         T_UNKNOWN = 0,
  17.         T_BYTE = 1,
  18.         T_WORD = 2,
  19.         T_INT = 3,
  20.         T_FLOAT = 4,
  21.         T_DOUBLE = 5,
  22. };
  23. typedef enum arg_type arg_type;
  24. bool_t xdr_arg_type();
  25.  
  26.  
  27. struct arg_value {
  28.         arg_type type;
  29.         union {
  30.                 char v_byte;
  31.                 short v_word;
  32.                 int v_int;
  33.                 float v_fp;
  34.                 double v_dp;
  35.         } arg_value_u;
  36. };
  37. typedef struct arg_value arg_value;
  38. bool_t xdr_arg_value();
  39.  
  40. struct func_call {
  41.         int func_addr;
  42.         struct {
  43.                 u_int args_len;
  44.                 arg_value *args_val;
  45.         } args;
  46. };
  47. typedef struct func_call func_call;
  48. bool_t xdr_func_call();
  49.  
  50.  
  51. typedef char *arg_one;
  52. bool_t xdr_arg_one();
  53.  
  54.  
  55. typedef struct {
  56.         u_int arg_array_len;
  57.         arg_one *arg_array_val;
  58. } arg_array;
  59. bool_t xdr_arg_array();
  60.  
  61.  
  62. /*
  63.  * Structures used to pass structures required for
  64.  * process control but not part of the standard ptrace interface
  65.  */
  66.  
  67. /*
  68.  * arg_info is used to pass arguments into process start
  69.  */
  70. struct arg_info {
  71.     int rargc;
  72.     char **rargv;
  73. };
  74. typedef struct arg_info Arg_info;
  75.  
  76.  
  77. enum EVENT_TYPE {
  78.         EVENT_BREAK = 0,
  79.         EVENT_STOP = 1,
  80.         EVENT_EXIT = 2,
  81.         EVENT_BUS_ERR = 3,
  82.         EVENT_SUSPEND = 4,
  83.         EVENT_ZERO_DIV = 5,
  84.         EVENT_SIGNAL = 6,
  85.         EVENT_START = 7,
  86. };
  87. typedef enum EVENT_TYPE EVENT_TYPE;
  88.  
  89.  
  90. struct RDB_EVENT {
  91.     int status;
  92.     int taskId;
  93.         EVENT_TYPE eventType;
  94.         int sigType;
  95. };
  96. typedef struct RDB_EVENT RDB_EVENT;
  97.  
  98.  
  99. struct TASK_START {
  100.         int status;
  101.         int pid;
  102. };
  103. typedef struct TASK_START TASK_START;
  104.  
  105.  
  106. struct SYMBOL_ADDR {
  107.         int status;
  108.         u_int addr;
  109. };
  110. typedef struct SYMBOL_ADDR SYMBOL_ADDR;
  111.  
  112. struct SOURCE_STEP {
  113.     int taskId;
  114.     u_int startAddr;
  115.     u_int endAddr;
  116. };
  117. typedef struct SOURCE_STEP SOURCE_STEP;
  118.  
  119. #define MAX_ARG_CNT 10
  120. #define MAX_FUNC_ARGS 100
  121. #define MAX_ARG_LEN   100
  122.  
  123. bool_t xdr_arg_info();
  124. bool_t xdr_EVENT_TYPE();
  125. bool_t xdr_RDB_EVENT();
  126. bool_t xdr_TASK_START();
  127. bool_t xdr_SYMBOL_ADDR();
  128. bool_t xdr_SOURCE_STEP();
  129.  
  130. #define RDBPROG (u_long) 0x44444444
  131. #define RDBVERS (u_long) 1
  132. #endif    INCxdrrdbh
  133.